82 #define SLAVE_ADDRESS 0x48
89 WDT_A_hold(WDT_A_BASE);
92 CS_setDCOFreq(CS_DCORSEL_0,CS_DCOFSEL_3);
94 CS_initClockSignal(CS_ACLK,CS_DCOCLK_SELECT,CS_CLOCK_DIVIDER_8);
96 CS_initClockSignal(CS_SMCLK,CS_DCOCLK_SELECT,CS_CLOCK_DIVIDER_8);
98 CS_initClockSignal(CS_MCLK,CS_DCOCLK_SELECT,CS_CLOCK_DIVIDER_8);
107 GPIO_setAsPeripheralModuleFunctionInputPin(
109 GPIO_PIN6 + GPIO_PIN7,
110 GPIO_SECONDARY_MODULE_FUNCTION
113 EUSCI_B_I2C_initMasterParam
param = {0};
114 param.selectClockSource = EUSCI_B_I2C_CLOCKSOURCE_SMCLK;
115 param.i2cClk = 1000000;
116 param.dataRate = EUSCI_B_I2C_SET_DATA_RATE_400KBPS;
117 param.byteCounterThreshold = 0;
118 param.autoSTOPGeneration = EUSCI_B_I2C_NO_AUTO_STOP;
119 EUSCI_B_I2C_initMaster(EUSCI_B0_BASE, &
param);
122 EUSCI_B_I2C_setSlaveAddress(EUSCI_B0_BASE,
127 EUSCI_B_I2C_setMode(EUSCI_B0_BASE,
128 EUSCI_B_I2C_TRANSMIT_MODE
132 EUSCI_B_I2C_enable(EUSCI_B0_BASE);
134 EUSCI_B_I2C_clearInterrupt(EUSCI_B0_BASE,
135 EUSCI_B_I2C_TRANSMIT_INTERRUPT0 +
136 EUSCI_B_I2C_NAK_INTERRUPT
140 EUSCI_B_I2C_enableInterrupt(EUSCI_B0_BASE,
141 EUSCI_B_I2C_TRANSMIT_INTERRUPT0 +
142 EUSCI_B_I2C_NAK_INTERRUPT
150 while (EUSCI_B_I2C_SENDING_STOP == EUSCI_B_I2C_masterIsStopSent
154 EUSCI_B_I2C_masterSendMultiByteStart(EUSCI_B0_BASE,
157 __bis_SR_register(CPUOFF + GIE);
171 #if defined(__TI_COMPILER_VERSION__) || defined(__IAR_SYSTEMS_ICC__)
172 #pragma vector=USCI_B0_VECTOR
174 #elif defined(__GNUC__)
175 __attribute__((interrupt(USCI_B0_VECTOR)))
179 switch(__even_in_range(UCB0IV,0x1E))
185 EUSCI_B_I2C_masterSendStart(EUSCI_B0_BASE);
191 EUSCI_B_I2C_masterSendMultiByteNext(EUSCI_B0_BASE,
198 EUSCI_B_I2C_masterSendMultiByteStop(EUSCI_B0_BASE);
MPU_initThreeSegmentsParam param
__bic_SR_register_on_exit(LPM3_bits|GIE)